UNPKG

@rstore/nuxt-drizzle

Version:
19 lines (18 loc) 834 B
import { defineEventHandler, getRouterParams, readBody } from "h3"; import { getDrizzleDialect, getDrizzleKeyWhere, getDrizzleTableFromModel, rstoreUseDrizzle } from "../../utils/index.js"; export default defineEventHandler(async (event) => { const { model: modelName, key } = getRouterParams(event); const { table, primaryKeys } = getDrizzleTableFromModel(modelName); const body = await readBody(event); const where = getDrizzleKeyWhere(key, primaryKeys, table); const q = rstoreUseDrizzle().update(table).set(body).where(where); const dialect = getDrizzleDialect(); if (dialect === "pg" || dialect === "sqlite") { const result = await q.returning(); return result[0]; } else { await q; const select = await rstoreUseDrizzle().select().from(table).where(where).limit(1); return select[0]; } });